package com.glzn.springboot03.service;


import com.github.pagehelper.PageInfo;
import com.glzn.springboot03.entity.Event;

import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.List;

/**
 * @author gongjq
 */
public interface EventService {

	/**
	 * 获取事件
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	String listEvent() throws UnsupportedEncodingException;
	/**
	 * 查询所有事件
	 * @param deviceId
	 * @return
	 */
	List<Event> findAll(Integer deviceId);
	/**
	 * 根据起始和结束时间查询事件
	 * @param startTime
	 * @param endTime
	 * @param deviceId
	 * @return
	 */
	List<Event> findByTime(Date startTime, Date endTime, Integer deviceId);
	/**
	 * 根据起始和结束时间查询事件
	 * @param startTime
	 * @param endTime
	 * @param pageNum
	 * @param pageSize
	 * @param deviceId
	 * @return
	 */
	PageInfo<Event> findByTime(Date startTime, Date endTime, int pageNum, int pageSize, Integer deviceId);

	/**
	 * 根据事件类型查询事件
	 * @param type
	 * @return
	 * @param pageNum
	 * @param pageSize
	 * @param deviceId
	 */
	PageInfo<Event> findByType(String type, int pageNum, int pageSize, Integer deviceId);
	/**
	 * 根据开始结束日期和类型
	 * @param startTime
	 * @param endTime
	 * @param type
	 * @param deviceId
	 * @return
	 */
	List<Event> findByTimeAndType(Date startTime, Date endTime, String type, Integer deviceId);

	/**
	 * 分页
	 * @param startTime
	 * @param endTime
	 * @param type
	 * @param pageNum
	 * @param pageSize
	 * @param deviceId
	 * @return
	 */
	PageInfo<Event> findByTimeAndType(Date startTime, Date endTime, String type, int pageNum, int pageSize, Integer deviceId);
	/**
	 * 插入事件
	 * @param event
	 * @return
	 */
	Boolean insert(Event event);
	/**
	 * 删除全部事件
	 * @param deviceId
	 * @return
	 */
	boolean deleteAll(Integer deviceId);

	/**
	 * 获取进度
	 * @param sessionId
	 * @return
	 */
	int getProcess(String sessionId);
}
